package done.normal_001_100;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 11. Container With Most Water 盛最多水的容器
 * <p>
 * 给定 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点 (i, ai) 。
 * 在坐标内画 n 条垂直线，垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。
 * 找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。
 * <p>
 * 说明：你不能倾斜容器，且 n 的值至少为 2。
 * <p>
 * <p>
 * |<-------------|------  容积：7 x 7 = 49
 * |              |     |
 * |  |           |     |
 * |  |     |     |     |
 * |  |     |  |  |     |
 * |  |     |  |  |  |  |
 * |  |  |  |  |  |  |  |
 * ___|__|__|__|__|__|__|__|__|__
 * <p>
 * 图中垂直线代表输入数组 [1, 8, 6, 2, 5, 4, 8, 3, 7]。在此情况下，容器
 * 能够容纳水（表示为蓝色部分）的最大值为 49。
 *
 * @author 大硕
 * 2019-03-21 10:17 PM
 **/
@Slf4j
public class ContainerWithMostWater {

    @SuppressWarnings("all")
    public int maxArea(int[] a) {
        int max = 0;
        //190321 first
        return max;
    }

    @Test
    public void test() {
        int[] arr = new int[]{1, 8, 6, 2, 5, 4, 8, 3, 7};
        log.info("result:{}", maxArea(arr));
    }
}






















/*
public int maxArea(int[] a) {
    int max = 0;
    for(int i = 0, j = a.length - 1; i < j ; ){
        int minHeight = a[i] < a[j] ? a[i++] : a[j--];
        max = max(max, (j - i + 1) * minHeight);
    }
    return max;
}
*/